#include "picbutton.h"

PicButton::PicButton(QWidget *parent) {}

void PicButton::SetIcons(const QString &normal, const QString &hover, const QString &pressed)
{
    _normal = normal;
    _hover = hover;
    _pressed = pressed;

    QPixmap tmpPixmap;
    tmpPixmap.load(normal);
    this->resize(tmpPixmap.size());     // 设置为图片的大小
    this->setIcon(tmpPixmap);
    this->setIconSize(tmpPixmap.size());        // 设置图片大小（与原图大小一致）
}

bool PicButton::event(QEvent *e)
{
        switch(e->type()){
                case QEvent::Enter:
                    setHoverIcon();
                    break;
                case QEvent::Leave:
                    setNormalIcon();
                    break;
                case QEvent::MouseButtonPress:
                    setPressedIcon();
                    break;
                case QEvent::MouseButtonRelease:
                    setHoverIcon();
                    break;
                default:
                    break;
    }

        return QPushButton::event(e);
}

void PicButton::setNormalIcon()     // 正常状态
{
    QPixmap tmpPixmap;
    tmpPixmap.load(_normal);
    this->resize(tmpPixmap.size());     // 设置为图片的大小
}

void PicButton::setHoverIcon()      // 鼠标悬浮状态
{
    QPixmap tmpPixmap;
    tmpPixmap.load(_hover);
    this->resize(tmpPixmap.size());     // 设置为图片的大小
}

void PicButton::setPressedIcon()        // 鼠标点击状态
{
    QPixmap tmpPixmap;
    tmpPixmap.load(_pressed);
    this->resize(tmpPixmap.size());     // 设置为图片的大小
}
